<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style></style>
  </head>
  <body>
    <div>
      <h1>创建Generator模块</h1>
      <p>Generator本质上就是一个NPM模块</p>
      <div>
        <h2>Generator基本结构</h2>
        <p>generators(生成器目录)</p>
        <p>generators里面包含app(默认生成器目录)</p>
        <p>app里面包含index.js(默认生成器实现)</p>
        <p>和generators同级的package.json(模块包配置文价)</p>
        <p>generator模块的名称是一个------------generator-<name>的形式</p>
      </div>
      <div>
        <h2>演示</h2>
        <p>yarn init创建一个package.json的文件</p>
        <p>yarn add yeoman-generator安装这个模块，提供了生成器的一个基类，基类提供了一些工具函数</p>
        <p>打开vscode创建一个generators文件里面包含add文件在里面包含index.js(此文件作为Generator的核心入口,需要导出一个继承自Yeoman Generator 的类型,Yeoman Generator 在工作时会自动调用我们在此类型中定义的一些生命周期方法,我们在这些方法中调用父类提供的一些工具方法实现一些功能，例如写入文件)</p>
      </div>
      <div>
      <p>写完后在模块连接到全局范围,使其成为一个全局模块包--yarn link</p>
      <p>然后可以通过yo 生成器名称生成模块</p>
      </div>
    </div>
    <script></script>
  </body>
</html>
